Server Cluster Fundamentals
In
Windows Server 2008, you can configure three types of server groups for
load balancing, scalability, and high availability. First, a round-robin
distribution group is a set of computers that uses DNS to provide basic load balancing with minimal configuration requirements. Next, a Network Load Balancing (NLB) cluster (also called an NLB farm) is a group of servers used not only to provide load balancing but also to increase scalability. Finally, a failover cluster can be used to increase the availability of an application or service in the event of a server failure.
Note: What is load balancing?
Load
balancing is a means of distributing incoming connection requests to
two or more servers in a manner that is transparent to users. Load
balancing can be implemented with hardware, software, or a combination
of both.
Round-Robin Distribution
Round-robin
DNS is a simple method for distributing a workload among multiple
servers. In round-robin, a DNS server is configured with more than one
record to resolve another server’s name to an IP address. When clients
query the DNS server to resolve the name (find the address) of the
other server, the DNS server responds by cycling through the records
one at a time and by pointing each successive client to a different
address and different machine.
For
example, suppose that a DNS server authoritative for the DNS domain
contoso.com is configured with two separate resource records, each
resolving the name web.contoso.com by pointing to a different server, as shown in Figure 1. When the first client (Client1) queries the DNS server to resolve the web.contoso.comweb.contoso.com),
the DNS server answers the query with the information provided in the
second record matching “web.” This second record points to a server
name websrv2, which is located at the 192.168.3.12 address. If a third
client then queries the DNS server for the same name, the server will
respond with information in the first record again.
name, the DNS server answers by pointing the client to the server named
websrv1 located at the 192.168.3.11 address. This is the information
associated with the first DNS record matching “web.” When the next
client, Client2, queries the DNS server to resolve the same name (
The
purpose of DNS round-robin is to load balance client requests among
servers. Its main advantage is that it is very easy to configure.
Round-robin DNS is enabled by default in most DNS servers, so to
configure this simple sort of load balancing, you only need to create
the appropriate DNS records on the DNS server.
However,
there are serious limitations to round-robin as a load balancing
mechanism. The biggest drawback is that if one of the target servers
goes down, the DNS server does not respond to this event, and it will
keep directing clients to the inactive server until a network
administrator removes the DNS record from the DNS server. Another
drawback is that every record is given equal weight, regardless of
whether one target server is more powerful than another or a given
server is already busy. A final drawback is that round-robin does not
always function as expected. Because DNS clients cache query responses
from servers, a DNS client by default will keep connecting to the same
target server as long as the cached response stays active.
Network Load Balancing
An
installable feature of Windows Server 2008, NLB transparently
distributes client requests among servers in an NLB cluster by using
virtual IP addresses and a shared name. From the perspective of the
client, the NLB cluster appears to be a single server. NLB is a fully
distributed solution in that it does not use a centralized dispatcher.
In a common scenario, NLB is used to create a Web farm—a
group of computers working to support a Web site or set of Web sites.
However, NLB can also be used to create a terminal server farm, a VPN
server farm, or an ISA Server firewall cluster. Figure 2 shows a basic configuration of an NLB Web farm located behind an NLB firewall cluster.
As
a load balancing mechanism, NLB provides significant advantages over
round-robin DNS. First of all, in contrast to round-robin DNS, NLB
automatically detects servers that have been disconnected from the NLB
cluster and then redistributes client requests to the remaining live
hosts. This feature prevents clients from sending requests to the
failed servers. Another difference between NLB and round-robin DNS is
that in NLB, you have the option to specify a load percentage that each
host will handle. Clients are then statistically distributed among
hosts so that each server receives its percentage of incoming requests.
Beyond
load balancing, NLB also supports scalability. As the demand for a
network service such as a Web site grows, more servers can be added to
the farm with only a minimal increase in administrative overhead.
Failover Clustering
A
failover cluster is a group of two or more computers used to prevent
downtime for selected applications and services. The clustered servers
(called nodes) are connected by physical cables to each other and to
shared disk storage. If one of the cluster nodes fails, another node
begins to take over service for the lost node in a process known as
failover. As a result of failover, users connecting to the server
experience minimal disruption in service.
Servers
in a failover cluster can function in a variety of roles, including the
roles of file server, print server, mail server, or database server,
and they can provide high availability for a variety of other services
and applications.
In
most cases, the failover cluster includes a shared storage unit that is
physically connected to all the servers in the cluster, although any
given volume in the storage is accessed by only one server at a time.
Figure 3 illustrates the process of failover in a basic, two-node failover cluster.
In
a failover cluster, storage volumes or LUNs that are exposed to the
nodes in a cluster must not be exposed to other servers, including
servers in another cluster. Figure 4 illustrates this concept by showing two two-node failover clusters dividing up storage on a SAN.
Configuring an NLB Cluster
Creating
an NLB cluster is a relatively simple process. To begin, install
Windows Server 2008 on two servers and then, on both servers, configure
the service or application (such as IIS) that you want to provide to
clients. Be sure to create identical configurations because you want
the client experience to be identical regardless of which server users
are connected to.
The
next step in configuring an NLB cluster is to install the Network Load
Balancing feature on all servers that you want to join the NLB cluster.
For this step, simply open Server Manager, and then click Add Features.
In the Add Features Wizard, select Network Load Balancing, click Next,
and then follow the prompts to install.
The
final step in creating an NLB cluster is to use Network Load Balancing
Manager to configure the cluster. This procedure is outlined in the
following section.
▸ To create an NLB cluster
1. | Launch Network Load Balancing Manager from Administrative Tools. (You can also open Network Load Balancing Manager by typing Nlbmgr.exe from a command prompt.)
|
2. | In the Network Load Balancing Manager console tree, right-click Network Load Balancing Clusters, and then click New Cluster.
|
3. | Connect to the host that is to be a part of the new cluster. In Host, enter the name of the host, and then click Connect.
|
4. | Select
the interface you want to use with the cluster, and then click Next.
(The interface hosts the virtual IP address and receives the client
traffic to load balance.)
|
5. | On
the Host Parameters page, select a value in the Priority (Unique host
identifier) drop-down list. This parameter specifies a unique ID for
each host. The host with the lowest numerical priority among the
current members of the cluster handles all the cluster’s network
traffic not covered by a port rule. You can override these priorities
or provide load balancing for specific ranges of ports by specifying
rules on the Port rules tab of the Network Load Balancing Properties
dialog box.
|
6. | On
the Host Parameters page, verify that the dedicated IP address from the
chosen interface is visible in the list. If not, use the Add button to
add the address, and then click Next to continue.
|
7. | On
the Cluster IP Addresses page, click Add to enter the cluster IP
address shared by every host in the cluster. NLB adds this IP address
to the TCP/IP stack on the selected interface of all hosts chosen to be
part of the cluster. Click Next to continue.
Note: Use only static addresses
NLB
doesn’t support Dynamic Host Configuration Protocol (DHCP). NLB
disables DHCP on each interface it configures, so the IP addresses must
be static.
|
8. | On
the Cluster Parameters page, in the Cluster IP Configuration area,
verify appropriate values for IP address and subnet mask, and then type
a full Internet name (Fully Qualified Domain Name) for the cluster.
Note that for IPv6 addresses, a subnet mask is not needed. Note also
that a full Internet name is not needed when using NLB with Terminal
Services.
|
9. | On
the Cluster Parameters page, in the Cluster Operation Mode area, click
Unicast to specify that a unicast media access control (MAC) address
should be used for cluster operations. In unicast mode, the MAC address
of the cluster is assigned to the network adapter of the computer, and
the built-in MAC address of the network adapter is not used. It is
recommended that you accept the unicast default settings. Click Next to
continue.
|
10. | On the Port Rules page, click Edit to modify the default port rules. Configure the rules as follows:
In
the Port Range area, specify a range corresponding to the service you
want to provide in the NLB cluster. For example, for Web services, type
80 to 80 so that the new rule applies only to HTTP traffic. For Terminal Services, type 3389 to 3389 so that the new rule applies only to RDP traffic. In
the Protocols area, select TCP or UDP, as needed, as the specific
TCP/IP protocol the port rule should cover. Only the network traffic
for the specified protocol is affected by the rule. Traffic not
affected by the port rule is handled by the default host. In
the Filtering mode area, select Multiple Host if you want multiple
hosts in the cluster to handle network traffic for the port rule.
Choose Single Host if you want a single host to handle the network
traffic for the port rule. In
Affinity (which applies only for the Multiple host filtering mode),
select None if you want multiple connections from the same client IP
address to be handled by different cluster hosts (no client affinity).
Leave the Single option if you want NLB to direct multiple requests
from the same client IP address to the same cluster host. Select
Network if you want NLB to direct multiple requests from the local
subnet to the same cluster host.
|
11. | After you add the port rule, click Finish to create the cluster.
To add more hosts to the cluster, right-click the new cluster, and then
click Add Host To Cluster. Configure the host parameters (including
host priority and dedicated IP addresses) for the additional hosts by
following the same instructions that you used to configure the initial
host. Because you are adding hosts to an already configured cluster,
all the cluster-wide parameters remain the same. |